package com.solution.admin.point.dao;

import java.util.List;
import java.util.Map;

import com.solution.admin.point.entity.PointMonthEntity;
import com.solution.common.dao.BaseDao;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 月度积分统计信息DAO接口
 * 
 * @author xu_cc
 * @date 2017-10-20 14:21:47
 */
public interface PointMonthDao extends BaseDao<PointMonthEntity> {

    /**
     * 保存月度积分统计信息
     * 
     * @param pointMonthEntity
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:21:47
     */
    public long savePointMonth(PointMonthEntity pointMonthEntity);

    /**
     * 分页查询月度积分统计信息信息
     * 
     * @param pageParam
     *            分页对象
     * @param pointMonth
     *            分页参数
     * @return PageBean 分页参数及数据
     * @author xu_cc
     * @date 2017-10-20 14:21:47
     */
    public PageBean listPointMonthPage(PageParam pageParam, Map<String, Object> param);

    /**
     * 更新月度积分统计信息
     * 
     * @param pointMonthEntity
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:21:47
     */
    public int updatePointMonth(PointMonthEntity pointMonthEntity);

    /**
     * 获取指定月份的积分统计信息
     * 
     * @Title: getPointByMonth
     * @Description:(描述)
     * @param month
     * @return List<PointMonthEntity>
     * @author xu_cc
     * @throws Exception
     *             exception
     * @Date 创建时间：2017年10月25日 下午5:43:12
     */
    public List<PointMonthEntity> getPointByMonth(String month);

    /**
     * 批量插入
     * 
     * @Title: insertList
     * @Description:(描述)
     * @param list
     * @return int
     * @author xu_cc
     * @throws Exception
     *             exception
     * @Date 创建时间：2017年10月25日 下午5:58:18
     */
    public int insertList(List<PointMonthEntity> list);

    /**
     * 删除指定月份的所有月度积分统计信息
     * 
     * @param id
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:21:47
     */
    public int deleteByMonth(String month);

    /**
     * 每月月初根据指定月份生成期初积分信息
     * 
     * @param month
     * @return int
     * @author xu_cc
     * @throws Exception
     *             exception
     * @Date 创建时间：2017年10月25日 下午6:48:39
     */
    public int insertMonthBegin(String month);

    /**
     * 根据月度积分统计信息类型获取月度积分统计信息
     * 
     * @param param
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:21:47
     */
    public List<PointMonthEntity> listPointMonth(Map<String, Object> param);
}
